﻿using System;
using System.Collections.Generic;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
using WindowsGame.Library.Logger;
using WindowsGame.Library.Manager;

namespace WindowsGame.Library
{
	public static class Engine
	{
		public static void Initialize(
			Game game,
			GraphicsDeviceManager graphics,
			IGameLogger logger,
			ICamera camera,
			IDictionary<String, String> contentPaths
			)
		{
			Game = game;
			GraphicsManager = graphics;
			GraphicsDevice = graphics.GraphicsDevice;
			SpriteBatch = new SpriteBatch(GraphicsDevice);

			Content = TheContentManager.Instance;
			Content.Initialize(game.Content, contentPaths);

			Logger = logger;
			Camera = camera;
		}

		public static Game Game								{ get; private set; }
		public static GraphicsDeviceManager GraphicsManager	{ get; private set; }
		public static GraphicsDevice GraphicsDevice			{ get; private set; }
		public static TheContentManager Content				{ get; private set; }
		public static SpriteBatch SpriteBatch				{ get; private set; }
		public static IGameLogger Logger					{ get; private set; }
		public static ICamera Camera						{ get; private set; }
	}
}